#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""DocString
Instala y configura un servidor de DNS
"""

def install_dhcpd():
    """ Instala y configura un servidor DNS  """

    CONFIG_FILE="/etc/dhcp/dhcpd.conf"
    TEMPLATE_FILE="./templates/dhcpd.conf"   
    DAEMON="/etc/init.d/isc-dhcp-server"
 
    DHCP_REEMPLAZO = {
            "NOMBRE_DOMINIO" : "red",
            "ID_RED" : "ttu",
            "RED":"192.168.2.0",
            "MASCARA":"255.255.255.0",
            "SERVIDORES_DNS":"",
            "PUERTA_ENLACE":"",
            "DIFUSION":"",
            "SUBRED":"",
            }

    tmp=''

    tmp = raw_input('Nombre del dominio ['+DHCP_REEMPLAZO['NOMBRE_DOMINIO']+']: ')
    if tmp:
        DHCP_REEMPLAZO['NOMBRE_DOMINIO'] = tmp
    tmp = raw_input('Identificador de red ['+DHCP_REEMPLAZO['ID_RED']+']: ')
    if tmp:
        DHCP_REEMPLAZO['ID_RED'] = tmp
    tmp = raw_input('Red ['+DHCP_REEMPLAZO['RED']+']:')
    if tmp:
        DHCP_REEMPLAZO['RED'] = tmp
    tmp = raw_input('Máscara de red ['+DHCP_REEMPLAZO['MASCARA']+']:')
    if tmp:
        DHCP_REEMPLAZO['MASCARA'] = tmp
    DHCP_REEMPLAZO['SERVIDORES_DNS'] = raw_input('Servidores DNS (separados por ,):')
    DHCP_REEMPLAZO['PUERTA_ENLACE'] = raw_input('Puerta de enlace:')
    DHCP_REEMPLAZO['DIFUSION'] = raw_input('Broadcast:')

    tmp = DHCP_REEMPLAZO['RED'].split('.')
    t='.'
    DHCP_REEMPLAZO['SUBRED'] = t.join(tmp[0:3])
    
    #Ejecutamos las órdenes con sudo
    mode_sudo()
    #Instalamos el paquete en el caso de que no lo esté
    package_ensure("isc-dhcp-server") 
    if file_exists(CONFIG_FILE):
        save_original(CONFIG_FILE)
        #Hecha la copia de borra el original
        run("rm " + CONFIG_FILE)
    file_append(CONFIG_FILE,remplaza_strstr(local_read(TEMPLATE_FILE),DHCP_REEMPLAZO),"644","root","root")

    # Reiniciamos el demonio
    run(DAEMON + " restart")

